/**
 * 在线用户控制器
 */
package com.jeeplus.test.onetest.controller;

import com.jeeplus.common.utils.ResponseUtil;
import com.jeeplus.test.onetest.service.OnlineUserService;
import com.jeeplus.test.onetest.service.dto.OnlineUserDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 在线用户控制器
 * @author jeeplus
 */
@Api(tags = "在线用户管理")
@RestController
@RequestMapping("/test/onetest/onlineUser")
public class OnlineUserController {
    
    @Autowired
    private OnlineUserService onlineUserService;
    
    /**
     * 获取在线用户数量
     * @return 在线用户数量
     */
    @ApiOperation(value = "获取在线用户数量")
    @GetMapping("count")
    public ResponseEntity getOnlineUserCount() {
        int count = onlineUserService.getOnlineUserCount();
        return ResponseUtil.newInstance().add("count", count).ok();
    }
    
    /**
     * 获取在线用户列表
     * @return 在线用户列表
     */
    @ApiOperation(value = "获取在线用户列表")
    @GetMapping("list")
    public ResponseEntity getOnlineUserList() {
        List<OnlineUserDTO> onlineUserList = onlineUserService.getOnlineUserList();
        return ResponseUtil.newInstance().add("list", onlineUserList).ok();
    }
    
    /**
     * 根据用户ID获取在线用户信息
     * @param userId 用户ID
     * @return 在线用户信息
     */
    @ApiOperation(value = "根据用户ID获取在线用户信息")
    @GetMapping("getByUserId")
    public ResponseEntity getOnlineUserByUserId(String userId) {
        OnlineUserDTO onlineUserDTO = onlineUserService.getOnlineUserByUserId(userId);
        return ResponseUtil.newInstance().add("user", onlineUserDTO).ok();
    }
}